sdata bltn_car(sdata ob);
sdata bltn_cdr(sdata ob);
void bltn_set_car(sdata ob, sdata x);
void bltn_set_cdr(sdata ob, sdata x);
sdata bltn_cons(sdata x, sdata y);

sdata bltn_make_vector(sdata ob);
sdata bltn_vector_ref(sdata ob, sdata idx);
sdata bltn_vector_set_bang(sdata ob, sdata idx, sdata val);
sdata bltn_vector_length(sdata ob);

sdata bltn_string_ref(sdata ob, sdata idx);
sdata bltn_string_set_bang(sdata ob, sdata idx, sdata val);
sdata bltn_string_length(sdata ob);

sdata bltn_eq_question(sdata x, sdata y);

sdata bltn_print(sdata ob);
sdata bltn_display(sdata ob);
sdata bltn_newline();

//
void closure_set(sdata cl, u i, sdata v);
sdata bltn_closure_env_set_bang(sdata clo, sdata idx, sdata val);

sdata bltn__plus(sdata x, sdata y);
sdata bltn__(sdata x, sdata y);
sdata bltn__star(sdata x, sdata y);
sdata bltn__slash(sdata x, sdata y);
sdata bltn_modulo(sdata x, sdata y);
sdata bltn__eql(sdata x, sdata y);
sdata bltn__to(sdata x, sdata y);
sdata bltn__lt(sdata x, sdata y);
sdata bltn__to_eql(sdata x, sdata y);
sdata bltn__lt_eql(sdata x, sdata y);

sdata bltn_integer__tochar(sdata ob);
sdata bltn_char__tointeger(sdata ob);
sdata bltn_sym_sym__tolist(sdata ob);

sdata bltn_null_question(sdata x);
sdata bltn_pair_question(sdata x);
sdata bltn_sym_sym_question(sdata x);
sdata bltn_string_question(sdata x);
sdata bltn_number_question(sdata x);
sdata bltn_bool_question(sdata x);
sdata bltn_procedure_question(sdata x);
sdata bltn_vector_question(sdata x);
sdata bltn_char_question(sdata x);
sdata bltn_eof_object_question(sdata x);

sdata bltn_read_char();
sdata bltn_unread_char(sdata ob);
sdata bltn_exit(sdata ob);
